package GameEngine;

/**
 * The Player interface declares some methods that will be
 * used by every player in the Pentago game.
 */
public interface Player
{
    /**
     * This method handles the interaction between the
     * player and the playing field.
     *
     * @param opponentMove The last move of the opponent player.
     * @param turnsLeft Number of turns left to end game.
     * @return Returns An object that represents the current move.
     * @throws java.lang.Exception
     */
    Move request( Move opponentMove, int turnsLeft ) throws Exception;

    /**
     * Checks if a move was valid.
     *
     * @param boardStatus The current state of this board.
     * @throws java.lang.Exception
     */
    void confirm( Status boardStatus ) throws Exception  ;
}